#
# This file is a part of the open-eBackup project.
# This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
# If a copy of the MPL was not distributed with this file, You can obtain one at
# http://mozilla.org/MPL/2.0/.
#
# Copyright (c) [2024] Huawei Technologies Co.,Ltd.
#
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
#

from informix.comm.const import JsonConstant
from informix.service.restore.cluster_restore import ClusterRestore
from informix.service.restore.single_restore import SingleRestore


class RestoreFactory:
    def __init__(self, job_manager, param_dict, param_obj):
        self.job_manager = job_manager
        self.param_dict = param_dict
        self.param_obj = param_obj

    def make_obj(self):
        resource_type = self.param_dict.get(JsonConstant.JOB, {}).get(JsonConstant.TARGET_OBJECT, {}).get(
            JsonConstant.SUB_TYPE)
        if resource_type == JsonConstant.INFORMIX_SINGLE_INSTANCE:
            return SingleRestore(self.job_manager, self.param_obj)
        return ClusterRestore(self.job_manager, self.param_obj)
